package com.nowcoder.community.util;

import com.alibaba.fastjson2.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.DigestUtils;

import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

/**
 * @author cjh
 * @date 2023/1/1 - 17:51
 */
public class CommunityUtil {
    /**
     * 生成随机字符串
     *
     * @return
     */
    public static String generateUUID() {
        return UUID.randomUUID().toString().replace("-", "");
    }

    /**
     * md5 加密
     * 只能加密不能解密
     * 可以 在原始密码上添加 ‘salt’ 增加密码的复杂度
     * 这样转换 就更加复杂
     *
     * @param key
     * @return
     */
    public static String md5(String key) {
        if (StringUtils.isBlank(key)) {
            return null;
        }
        return DigestUtils.md5DigestAsHex(key.getBytes(StandardCharsets.UTF_8));
    }

    /**
     *
     * @param code
     * @param msg 信息
     * @param map 业务数据
     * @return  json字符串
     */
    public static String getJsonString(int code, String msg, Map<String,Object> map){
        JSONObject json = new JSONObject();
        json.put("code",code);
        json.put("msg",msg);
        if (map != null) {
            for (String key : map.keySet()) {
                json.put(key,map.get(key));
            }
        }
        return json.toJSONString();
    }

    public static String getJsonString(int code,String msg){
        return  getJsonString(code,msg,null);
    }
    public static String getJsonString(int code){
        return  getJsonString(code,null,null);
    }

    public static void main(String[] args) {
        Map<String,Object> map = new HashMap<>();
        map.put("name","chen");
        map.put("age",18);
        System.out.println(getJsonString(0, "ces", map));
    }
}
